package entidadesHibernate;

// Generated 09-nov-2014 14:55:34 by Hibernate Tools 3.4.0.CR1

import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.UniqueConstraint;

/**
 * Licencia generated by hbm2java
 */
@Entity
@Table(name = "licencia", catalog = "bdtpmetodosagiles", uniqueConstraints = @UniqueConstraint(columnNames = "numero"))
public class Licencia implements java.io.Serializable {

	private int id;
	private Clase clase;
	private Titular titular;
	private int numero;
	private Date fechaInicioVigencia;
	private Date fechaVencimiento;
	private boolean donanteDeOrganos;
	private boolean vigente;
	private String observaciones;
	private String datosCreacion;
	private String datosModificacion;

	public Licencia() {
	}

	public Licencia(int id, Clase clase, Titular titular, int numero,
			Date fechaInicioVigencia, Date fechaVencimiento,
			boolean donanteDeOrganos, boolean vigente) {
		this.id = id;
		this.clase = clase;
		this.titular = titular;
		this.numero = numero;
		this.fechaInicioVigencia = fechaInicioVigencia;
		this.fechaVencimiento = fechaVencimiento;
		this.donanteDeOrganos = donanteDeOrganos;
		this.vigente = vigente;
	}

	public Licencia(Clase c,Titular t,int n,Date fechaInicio,Date fechaFin,String obs,Boolean donante){
		clase = c;
		titular = t;
		numero = n;
		fechaInicioVigencia=fechaInicio;
		fechaVencimiento=fechaFin;
		vigente=true;
		observaciones=obs;		
		donanteDeOrganos=donante;
	}
	
	public Licencia(int id, Clase clase, Titular titular, int numero,
			Date fechaInicioVigencia, Date fechaVencimiento,
			boolean donanteDeOrganos, boolean vigente, String observaciones,
			String datosCreacion, String datosModificacion) {
		this.id = id;
		this.clase = clase;
		this.titular = titular;
		this.numero = numero;
		this.fechaInicioVigencia = fechaInicioVigencia;
		this.fechaVencimiento = fechaVencimiento;
		this.donanteDeOrganos = donanteDeOrganos;
		this.vigente = vigente;
		this.observaciones = observaciones;
		this.datosCreacion = datosCreacion;
		this.datosModificacion = datosModificacion;
	}

	@Id
	@Column(name = "id", unique = true, nullable = false)
	public int getId() {
		return this.id;
	}

	public void setId(int id) {
		this.id = id;
	}

	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "id_clase", nullable = false)
	public Clase getClase() {
		return this.clase;
	}

	public void setClase(Clase clase) {
		this.clase = clase;
	}

	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "id_titular", nullable = false)
	public Titular getTitular() {
		return this.titular;
	}

	public void setTitular(Titular titular) {
		this.titular = titular;
	}

	@Column(name = "numero", unique = true, nullable = false)
	public int getNumero() {
		return this.numero;
	}

	public void setNumero(int numero) {
		this.numero = numero;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "fechaInicioVigencia", nullable = false, length = 10)
	public Date getFechaInicioVigencia() {
		return this.fechaInicioVigencia;
	}

	public void setFechaInicioVigencia(Date fechaInicioVigencia) {
		this.fechaInicioVigencia = fechaInicioVigencia;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "fechaVencimiento", nullable = false, length = 10)
	public Date getFechaVencimiento() {
		return this.fechaVencimiento;
	}

	public void setFechaVencimiento(Date fechaVencimiento) {
		this.fechaVencimiento = fechaVencimiento;
	}

	@Column(name = "donanteDeOrganos", nullable = false)
	public boolean isDonanteDeOrganos() {
		return this.donanteDeOrganos;
	}

	public void setDonanteDeOrganos(boolean donanteDeOrganos) {
		this.donanteDeOrganos = donanteDeOrganos;
	}

	@Column(name = "vigente", nullable = false)
	public boolean isVigente() {
		return this.vigente;
	}

	public void setVigente(boolean vigente) {
		this.vigente = vigente;
	}

	@Column(name = "observaciones", length = 180)
	public String getObservaciones() {
		return this.observaciones;
	}

	public void setObservaciones(String observaciones) {
		this.observaciones = observaciones;
	}

	@Column(name = "datosCreacion", length = 75)
	public String getDatosCreacion() {
		return this.datosCreacion;
	}

	public void setDatosCreacion(String datosCreacion) {
		this.datosCreacion = datosCreacion;
	}

	@Column(name = "datosModificacion", length = 75)
	public String getDatosModificacion() {
		return this.datosModificacion;
	}

	public void setDatosModificacion(String datosModificacion) {
		this.datosModificacion = datosModificacion;
	}

}
